package cn.geminis.lowcode.annotation;

import java.lang.annotation.*;

/**
 * @author puddi
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.SOURCE)
@Repeatable(QueryFilterProperties.class)
public @interface QueryFilterProperty {

    FilterType filterType() default FilterType.Equal;

    String fieldName() default "";

    String propertyName() default "";

    String propertyType() default "";

    String valueFormat() default "";

    enum FilterType {
        Equal,
        Like,
        GreaterThan,
        GreaterThanOrEqualTo,
        LessThan,
        LessThanOrEqualTo,
        In,
        IsNull,
        IsNotNull,
        IsEmpty,
        IsNotEmpty
    }
}

